{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#最基本功能的实验基准 Low level benchmarks\n",
    "仅使用faiss的最基本功能获得一些实验基准数据。  \n",
    "使用k-means方法将1百万个256维向量的数据集聚类为20000个类；  \n",
    "使用k-means方法将95百万个128维向量的数据集聚类85000个类；  \n",
    "实验中关注时间和精度的变化。\n",
    "\n",
    "#百万级别向量检索 Indexing 1M vectors\n",
    "当数据集中的向量个数在百万级别，暴力精确搜索的时间开销太大，比较好的选择是使用IndexIVFFlat索引类型。IndexIVFFlat也会返回精确的距离值，但返回的结果并不是完全正确的，可能会漏掉某个结果。  \n",
    "facebook官方通过一些实验，通过不同的检索类型在1百万向量的数据集上做检索，其中主要关注速度和精度的变化。实验结果展示在faiss wiki中。   \n",
    "实验中使用特征提取器提取1百万张图片的特征表达，对每张图片提取4096维特征向量，然后使用PCA将4096维向量降维到256维。\n",
    "\n",
    "faiss wiki:https://github.com/facebookresearch/faiss/wiki/Indexing-1M-vectors\n",
    "\n",
    "#1G级别向量检索 Indexing 1G vectors\n",
    "对这一量级的数据集，必须使用向量的压缩编码形式，主要的方法有乘积量化（PQ）。  \n",
    "使用Bigann和Deep1B分别进行实验。实验结果在faiss wiki。  \n",
    "faiss wiki:https://github.com/facebookresearch/faiss/wiki/Indexing-1G-vectors"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
